package com.ruoyix.ai.domain.bo;

import com.ruoyix.common.core.validate.AddGroup;
import com.ruoyix.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import jakarta.validation.constraints.*;
import java.util.Date;

import com.ruoyix.common.core.domain.BaseEntity;

/**
 * AI 聊天模型业务对象 ai_chat_model
 *
 * @author ruoyi
 * @date 2024-09-22
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class AiChatModelBo extends BaseEntity {

    /**
     * 编号
     */
    @NotNull(message = "编号不能为空", groups = { EditGroup.class })
    private Long id;

    /**
     * API 秘钥编号
     */
    @NotNull(message = "API 秘钥编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long keyId;

    /**
     * 模型名字
     */
    @NotBlank(message = "模型名字不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 模型标识
     */
    @NotBlank(message = "模型标识不能为空", groups = { AddGroup.class, EditGroup.class })
    private String model;

    /**
     * 模型平台
     */
    @NotBlank(message = "模型平台不能为空", groups = { AddGroup.class, EditGroup.class })
    private String platform;

    /**
     * 排序
     */
    @NotNull(message = "排序不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long sort;

    /**
     * 状态
     */
    @NotNull(message = "状态不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long status;

    /**
     * 温度参数
     */
    @NotNull(message = "温度参数不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long temperature;

    /**
     * 单条回复的最大 Token 数量
     */
    @NotNull(message = "单条回复的最大 Token 数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long maxTokens;

    /**
     * 上下文的最大 Message 数量
     */
    @NotNull(message = "上下文的最大 Message 数量不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long maxContexts;

    /**
     * 是否删除
     */
    @NotNull(message = "是否删除不能为空", groups = { AddGroup.class, EditGroup.class })
    private Integer deleted;

    /**
     * 租户编号
     */
    @NotNull(message = "租户编号不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long tenantId;



}
